import 'package:flutter/material.dart';

///  note this;
///  1，对于竖屏操作，这里我们只考虑宽适配，相当于操作16:9->4:3；
///  2，不考虑宽按照宽的比例缩放，高按照高的比例所犯(16:9->4:3伸缩严重)；
///  3，布局中控件/字体中有固定大小的，统一乘以宽的缩放比例，剩余的用弹性布局填充；
///  4，使用之前，请确保_init()函数已经调用；
///  5，布局应该减少相对布局，使用居中布局，方便UI居中显示，和不同宽的两边留白；
///  6, 水平(宽)适配，每个页面应该支持尽量支持高可以滑动 SafeArea + SingleChildScrollView；
///  7，对于没有使用bottomItemBar的页面，如果页面底部有要交互的UI，请加上SafeArea包裹(适应全面屏幕)
///
///class 表示Screen和与之相关的SafeArea

var screen = _Screen();

class _Screen {
  double paddingLeft = 0.0;
  double paddingRight = 0.0;
  // 一般为状态栏高度
  double paddingTop = 0.0;
  //一般为底部操作栏高度
  double paddingBottom = 0.0;
  // 水平安全区域
  double _screenWidth = 0.0;
  // 垂直安全区域
  double _screenHeight = 0.0;
  //设备像素比例
  double devicePixelRatio = 0.0;

  double get screenWidth {
    return _screenWidth;
  }

  double get screenHeight {
    return _screenHeight;
  }

  void configData(BuildContext context) {
    _screenWidth = MediaQuery.of(context).size.width;
    _screenHeight = MediaQuery.of(context).size.height;
    paddingLeft = MediaQuery.of(context).padding.left;
    paddingRight = MediaQuery.of(context).padding.right;
    paddingTop = MediaQuery.of(context).padding.top;
    paddingBottom = MediaQuery.of(context).padding.bottom;
    devicePixelRatio = MediaQuery.of(context).devicePixelRatio;
  }
}
